<?php
        //Control el desborde de memoria 
        ini_set('memory_limit', '-1');
        //Exportar a Excel desde Consulta Sql
        include '../../../controlador/php/conexion/Conexion.php';
        $con = new Conexion();
       // $conexion = mssql_connect('TITAN\pruebas','sa','admin5','planillaUsuario');
	$consulta = "SELECT PACNUMDOC,PACPRINOM,PACSEGNOM,PACPRIAPE,PACSEGAPE,FECHA_RECEPCION,FECHA_VENCIMIENTO,pramedico,pracup1,pracodser1,praproce1,pracup2,pracodser2,praproce2,pracup3,pracodser3,praproce3,pracup4,pracodser4,praproce4,Expr1,Expr2,Expr3,pracup6,pracodser6,praobs,sexo,tipo_Paciente,GPAFECNAC,Expr4,Tipo_Afiliacion,GDENOMBRE,estado,GASNOMBRE,GEEDESCRI  FROM RQX where PACNUMDOC IS NOT NULL";
        $resultado = $con->query($consulta);
	//Se definie Zona Horaria para el manejo de tiempo en el plugins
        date_default_timezone_set('America/Mexico_City');
	if (PHP_SAPI == 'cli'){
	     die('Este archivo solo se puede ver desde un navegador web');
        }
	/** Se agrega la libreria PHPExcel */
	require_once 'lib/PHPExcel/PHPExcel.php';
        // Se crea el objeto PHPExcel
	$objPHPExcel = new PHPExcel();
	// Se asignan las propiedades del libro
	$objPHPExcel->getProperties()->setCreator("Codedrinks") //Autor
	//->setLastModifiedBy("Codedrinks") //Ultimo usuario que lo modificó
	->setTitle("Reporte de Quirofano")
	->setSubject("Reporte Paciente Qx")
	->setDescription("Reporte de Pacientes")
	->setKeywords("Reporte de Pacientes")
	->setCategory("Reporte excel");	
        //Define Titulo del reporte
        $tituloReporte = "Paciente de Quirofano";
        //Ubicacion para las columnas de excel
	$titulosColumnas = array('DOCUMENTO', 'PRIMER NOMBRE', 'SEGUNDO NOMBRE', 'PRIMER APELLIDO','SEGUNDO APELLIDO','FECHA RECEPCION','FECHA VENCIMIENTO','MEDICO CIRUJANO','CODIGO CUP','CODIGO SERVICIO','PROCEDIMIENTO','CODIGO CUP','CODIGO SERVICIO','PROCEDIMIENTO','CODIGO CUP','CODIGO SERVICIO','PROCEDIMIENTO','CODIGO CUP','CODIGO SERVICIO','PROCEDIMIENTO','CODIGO CUP','CODIGO SERVICIO','PROCEDIMIENTO','CODIGO CUP','CODIGO SERVICIO','OBSERVACIONES','SEXO','TIPO PACIENTE','FECHA NACIMIENTO','PROCEDIMIENTO','TIPO AFILIACION','EPS','ESTADO','SERVICIO','ESPECIALIDAD');
	$objPHPExcel->setActiveSheetIndex(0)
        	    ->mergeCells('A1:AI1');			
		// Se agregan los titulos del reporte -- Mapeo de columnas del reporte
		$objPHPExcel->setActiveSheetIndex(0)
					->setCellValue('A1',$tituloReporte)
                                        ->setCellValue('A3',  $titulosColumnas[0])
                                        ->setCellValue('B3',  $titulosColumnas[1])
                                        ->setCellValue('C3',  $titulosColumnas[2])
                                        ->setCellValue('D3',  $titulosColumnas[3])
                                        ->setCellValue('E3',  $titulosColumnas[4])
                                        ->setCellValue('F3',  $titulosColumnas[5])
                                        ->setCellValue('G3',  $titulosColumnas[6])
                                        ->setCellValue('H3',  $titulosColumnas[7])
                                        ->setCellValue('I3',  $titulosColumnas[8])
                                        ->setCellValue('J3',  $titulosColumnas[9])
                                        ->setCellValue('K3',  $titulosColumnas[10])
                                        ->setCellValue('L3',  $titulosColumnas[11])
                                        ->setCellValue('M3',  $titulosColumnas[12])
                                        ->setCellValue('N3',  $titulosColumnas[13])
                                        ->setCellValue('O3',  $titulosColumnas[14])
                                        ->setCellValue('P3',  $titulosColumnas[15])
                                        ->setCellValue('Q3',  $titulosColumnas[16])
                                        ->setCellValue('R3',  $titulosColumnas[17])
                                        ->setCellValue('S3',  $titulosColumnas[18])
                                        ->setCellValue('T3',  $titulosColumnas[19])
                                        ->setCellValue('U3',  $titulosColumnas[20])
                                        ->setCellValue('V3',  $titulosColumnas[21])
                                        ->setCellValue('W3',  $titulosColumnas[22])
                                        ->setCellValue('X3',  $titulosColumnas[23])
                                        ->setCellValue('Y3',  $titulosColumnas[24])
                                        ->setCellValue('Z3',  $titulosColumnas[25])

                                        ->setCellValue('AA3',  $titulosColumnas[27])
                                        ->setCellValue('AB3',  $titulosColumnas[28])
                                        ->setCellValue('AC3',  $titulosColumnas[29])
                                        ->setCellValue('AD3',  $titulosColumnas[30])
                                        ->setCellValue('AE3',  $titulosColumnas[31])
                                        ->setCellValue('AF3',  $titulosColumnas[32])
                                        ->setCellValue('AG3',  $titulosColumnas[33])
                                        ->setCellValue('AH3',  $titulosColumnas[34])
                                        ->setCellValue('AI3',  $titulosColumnas[35]);
		//Se agregan los datos de los alumnos
		$i = 35;//Bandera para el total de las columnas
		while ($fila = mssql_fetch_array($resultado)) {
			$objPHPExcel->setActiveSheetIndex(0)
        		    ->setCellValue('A'.$i, utf8_encode($fila['PACNUMDOC']))
		            ->setCellValue('B'.$i, utf8_encode($fila['PACPRINOM']))
        		    ->setCellValue('C'.$i, utf8_encode($fila['PACSEGNOM']))
                            ->setCellValue('E'.$i, utf8_encode($fila['PACSEGAPE']))
                            ->setCellValue('F'.$i, utf8_encode($fila['FECHA_RECEPCION']))
		            ->setCellValue('G'.$i, utf8_encode($fila['FECHA_VENCIMIENTO']))
        		    ->setCellValue('H'.$i, utf8_encode($fila['pracup1']))
                            ->setCellValue('I'.$i, utf8_encode($fila['pracodser1']))
                            ->setCellValue('J'.$i, utf8_encode($fila['praproce1']))
		            ->setCellValue('K'.$i, utf8_encode( $fila['pracup2']))
        		    ->setCellValue('L'.$i, utf8_encode($fila['pracodser2']))
                            ->setCellValue('M'.$i, utf8_encode($fila['praproce2']))
                            ->setCellValue('N'.$i, utf8_encode($fila['pracup3']))
                            ->setCellValue('O'.$i, utf8_encode( $fila['pracodser3']))
		            ->setCellValue('P'.$i, utf8_encode( $fila['praproce3']))
        		    ->setCellValue('Q'.$i, utf8_encode( $fila['pracup4']))
                            ->setCellValue('R'.$i, utf8_encode($fila['pracodser4']))
                            ->setCellValue('S'.$i, utf8_encode($fila['praproce4']))
		            ->setCellValue('T'.$i, utf8_encode($fila['Expr1']))
        		    ->setCellValue('U'.$i, utf8_encode($fila['Expr2']))
                            ->setCellValue('V'.$i, utf8_encode($fila['Expr3']))
                            ->setCellValue('W'.$i, utf8_encode($fila['pracup6']))
                            ->setCellValue('X'.$i, utf8_encode($fila['pracodser6']))
		            ->setCellValue('Y'.$i, utf8_encode($fila['sexo']))
        		    ->setCellValue('Z'.$i, utf8_encode($fila['tipo_Paciente']))
                            ->setCellValue('AA'.$i,utf8_encode($fila['GPAFECNAC']))
                            ->setCellValue('AB'.$i,utf8_encode($fila['Expr4']))
		            ->setCellValue('AC'.$i,utf8_encode($fila['Tipo_Afiliacion']))
        		    ->setCellValue('AD'.$i,utf8_encode($fila['GDENOMBRE']))
                            ->setCellValue('AE'.$i,utf8_encode($fila['GASNOMBRE']))
                            ->setCellValue('AF'.$i,utf8_encode($fila['GEEDESCRI']));
                            $i++;
		}
		//Para el titulo del reporte
		$estiloTituloReporte = array(
        	'font' => array(
	        	'name'      => 'Verdana',
    	        'bold'      => true,
        	    'arial'    => false,
                'strike'    => false,
               	'size' =>30,
	            	'color'     => array(
    	            	'rgb' => '050505'//letra
        	       	)
            ),
                    //fondo
	        'fill' => array(
				'type'	=> PHPExcel_Style_Fill::FILL_SOLID,
				'color'	=> array('argb' => 'FFFFFFF')
			),
            'borders' => array(
               	'allborders' => array(
                	'style' => PHPExcel_Style_Border::BORDER_NONE                    
               	)
            ), 
            'alignment' =>  array(
        			'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
        			'vertical'   => PHPExcel_Style_Alignment::VERTICAL_CENTER,
        			'rotation'   => 0,
        			'wrap'          => TRUE
    		)
        );
        //titulo de encabezados de columnas            
	$estiloTituloColumnas = array(
            'font' => array(
                'name'      => 'verdana',
                'bold'      => true,                          
                'color'     => array(
                    'rgb' => '050505'//Color de  letra
                )
            ),
            'fill' 	=> array(
				'type'		=> PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
				'rotation'   => 90,
        		'startcolor' => array(
            		'rgb' => 'A9E2F3'// color de fondo de los encabezados de la tabla
        		),
        		'endcolor'   => array(
            		'argb' => 'A9E2F3'// si se póne otro color se forma un degradado
        		)
			),
            'borders' => array(
            	'top'     => array(
                    'style' => PHPExcel_Style_Border::BORDER_MEDIUM ,
                    'color' => array(
                        'rgb' => '000000'//bordes de las columnas
                    )
                ),
                'bottom'     => array(
                    'style' => PHPExcel_Style_Border::BORDER_MEDIUM ,
                    'color' => array(
                        'rgb' => '000000'//boton para las margenes
                    )
                )
            ),
			'alignment' =>  array(
        			'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
        			'vertical'   => PHPExcel_Style_Alignment::VERTICAL_CENTER,
        			'wrap'          => TRUE
    		));
			
		$estiloInformacion = new PHPExcel_Style();
		$estiloInformacion->applyFromArray(
			array(
           		'font' => array(
               	'name'      => 'verdana',               
               	'color'     => array(
                   	'rgb' => '050505'//color para degradado de celda principal
               	)
           	),
           	'fill' 	=> array(
				'type'		=> PHPExcel_Style_Fill::FILL_SOLID,
				'color'		=> array('argb' => '050505')
			),
           	'borders' => array(
               	'left'     => array(
                   	'style' => PHPExcel_Style_Border::BORDER_THIN ,
	                'color' => array(
    	            	'rgb' => '000000'
                   	)
               	)             
           	)
        ));
		 
		$objPHPExcel->getActiveSheet()->getStyle('A1:AI1')->applyFromArray($estiloTituloReporte);
		$objPHPExcel->getActiveSheet()->getStyle('A3:AI3')->applyFromArray($estiloTituloColumnas);		
		$objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "A4:AI".($i-1));
				
		for($i = 'A'; $i <= 'D'; $i++){
			$objPHPExcel->setActiveSheetIndex(0)			
				->getColumnDimension($i)->setAutoSize(TRUE);
		}
		
		// Se asigna el nombre a la hoja
		$objPHPExcel->getActiveSheet()->setTitle('Alumnos');

		// Se activa la hoja para que sea la que se muestre cuando el archivo se abre
		$objPHPExcel->setActiveSheetIndex(0);
		// Inmovilizar paneles 
		//$objPHPExcel->getActiveSheet(0)->freezePane('A4');
		$objPHPExcel->getActiveSheet(0)->freezePaneByColumnAndRow(0,4);

		// Se manda el archivo al navegador web, con el nombre que se indica (Excel2007)
		header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
		header('Content-Disposition: attachment;filename="ReporteQuirofano.xlsx"');
		header('Cache-Control: max-age=0');

		$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
		$objWriter->save('php://output');
		exit;
		
	
?>